package com.youlai.boot.core.tenant.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.youlai.boot.core.tenant.annotation.IgnoreTenant;
import com.youlai.boot.core.tenant.model.entity.GlobalUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 全局用户 Mapper
 * 
 * @author haoxr
 * @since 3.0.0
 */
@Mapper
@IgnoreTenant  // 重要：全局用户表在主数据源，不需要租户隔离
public interface GlobalUserMapper extends BaseMapper<GlobalUser> {

    /**
     * 根据 OpenID 查询用户租户关系
     *
     * @param openId 微信 OpenID
     * @return 用户列表（可能属于多个租户）
     */
    List<GlobalUser> selectByOpenId(@Param("openId") String openId);

    /**
     * 根据手机号查询用户租户关系
     *
     * @param mobile 手机号
     * @return 用户列表（可能属于多个租户）
     */
    List<GlobalUser> selectByMobile(@Param("mobile") String mobile);

    /**
     * 根据邮箱查询用户租户关系
     *
     * @param email 邮箱
     * @return 用户列表（可能属于多个租户）
     */
    List<GlobalUser> selectByEmail(@Param("email") String email);

    /**
     * 查询用户的主账号租户（通过 OpenID）
     *
     * @param openId 微信 OpenID
     * @return 主账号信息
     */
    GlobalUser selectPrimaryByOpenId(@Param("openId") String openId);

    /**
     * 查询用户的主账号租户（通过手机号）
     *
     * @param mobile 手机号
     * @return 主账号信息
     */
    GlobalUser selectPrimaryByMobile(@Param("mobile") String mobile);
}

